package com.junxian.springboot03.juc.threadPool.single;

/**
 * 饿汉式单例：太饿了，一上来就创建(就要吃东西)
 * 优点：由于使用了static关键字，保证了在引用这个变量时，关于这个变量的所以写入操作都完成，所以保证了JVM层面的线程安全
 * 缺点：如果一个类比较大，事先创建了对象占用内存，也不知道后面有没有在使用
 */
public class HungryMan {

    private HungryMan(){

    }

    private static final HungryMan hungryMan = new HungryMan();

    private static HungryMan getInstance(){
        return hungryMan;
    }

    public static void main(String[] args) {
        //测试获取的实例是否一直
        for (int i = 0; i < 10; i++) {
            new Thread(()->{
                System.out.println(Thread.currentThread().getName() + "--" + getInstance());
            }).start();
        }
    }

}
